﻿namespace Kyoh.Lib.Excel
{
    /// <summary>印刷領域での垂直な改ページのコレクションです。それぞれの垂直な改ページは、<see cref="VPageBreak"/> オブジェクトによって表されます。</summary>
	public class VPageBreaks : Component
	{
		private VPageBreaks(object obj, Component parent)
			: base(obj, parent) { }

        /// <summary>Excel COM オブジェクトで、新しいインスタンスを初期化します。</summary>
        /// <param name="obj">Excel COM オブジェクト</param>
        /// <param name="parent">親となる <see cref="Component"/> オブジェクト。</param>
		internal static VPageBreaks Create(object obj, Component parent)
		{
			return (obj == null) ? null : new VPageBreaks(obj, parent);
		}

        /// <summary>要素の個数を取得します。</summary>
        public int Count { get { return (int)base.GetProperty("Count"); } }

        /// <summary>インデックスを指定して要素を取得します。</summary>
        /// <param name="Index">インデックス。</param>
		public VPageBreak this[int Index]
		{
			get { return VPageBreak.Create(base.GetProperty("Item", Index), this); }
		}

        /// <summary>指定のセル位置に改ページを追加します。</summary>
        /// <param name="Before">改ページを追加する位置のセル。</param>
        /// <returns>追加した改ページを表す <see cref="VPageBreak"/></returns>
		public VPageBreak Add(Range Before)
		{
			return VPageBreak.Create(base.InvokeMethod("Add", Before.ExcelComObject), this);
		}
	}
}